#ifndef VIDEO_RECEIVER_H
#define VIDEO_RECEIVER_H

#include <QObject>
#include <QImage>
#include <QLabel>
#include <atomic>

QT_BEGIN_NAMESPACE
class QLabel;
QT_END_NAMESPACE

class VideoReceiver : public QObject
{
    Q_OBJECT
public:

    explicit VideoReceiver(QObject *parent = nullptr);

    // 开始拉流；url 可以是 rtsp://xxx 或本地文件
    void startReceive(const QString &url);

    // 温和停止
    void stop();

signals:
    // 解码后的帧发给 UI
    void newFrame(const QImage &img);

private:
    void run(const QString &url);                 // 真正的工作线程函数

    QLabel   *m_label;          // 目标 QLabel
    std::atomic_bool m_stop{false};
};

#endif // VIDEO_RECEIVER_H
